﻿using System.Text;
using System.Runtime.InteropServices;


namespace MPE
{
    static class IniFile
    {
        static string Path; //Имя файла настроек
        [DllImport("kernel32", CharSet = CharSet.Unicode)] // Подключаем kernel32.dll и описываем его функцию WritePrivateProfilesString
        static extern long WritePrivateProfileString(string Section, string Key, string Value, string FilePath);

        [DllImport("kernel32", CharSet = CharSet.Unicode)] // Еще раз подключаем kernel32.dll, а теперь описываем функцию GetPrivateProfileString
        static extern int GetPrivateProfileString(string Section, string Key, string Default, StringBuilder RetVal, int Size, string FilePath);

        public static void Init(ref string IniPath)
        {// С помощью конструктора записываем пусть до файла и его имя.
            Path = new System.IO.FileInfo(IniPath).FullName.ToString();
            DataHelper.loadSettings();//Загрузка настроек из ini-файла
        }
        public static string Read(string Section, string Key)
        {// Читаем ini-файл и возвращаем значение указного ключа из заданной секции.
            var RetVal = new StringBuilder(255);
            GetPrivateProfileString(Section, Key, "", RetVal, 255, Path);
            return RetVal.ToString();
        }
        public static void Write(string Section, string Key, object Value)
        {// Записываем в ini-файл. Запись происходит в выбранную секцию в выбранный ключ.
            WritePrivateProfileString(Section, Key, Value.ToString(), Path);
        }
    }
}